在完成機器學習模型的訓練和預測後,將模型部署到實際應用中是下一步關鍵的工作🔑。例如在醫療領域🏥,醫療人員需要能夠方便地使用這些模型來做出準確的診斷和決策。然而,僅僅提供程式碼並不符合醫療人員的需求🧑⚕️,因此設計一個易於使用的介面很重要。這篇文章將介紹如何使用 Streamlit 這個簡單的工具來構建一個用戶友好的應用程式,讓醫療人員能夠方便地進行預測✨。
建議使用自己電腦上的 Python 進行部署💻,因為這樣可以更好地控制環境設定和相容性,並能避免在 Google Colab 中可能遇到的限制,例如計算資源的使用限制和連線問題。此外,使用本地環境可以更方便地進行測試🧪。首先,您需要確保已經安裝了以下 Libraries📦:
pip install streamlit
pip install pandas
pip install scikit-learn
在您的 Python 檔案中,首先需要匯入必要的 Libraries📚:
import streamlit as st
import pandas as pd
import pickle
載入之前訓練好的機器學習模型。確保模型檔案與應用程式在 同一路徑(目錄) 中📁。
# 載入模型
model = pickle.load(open('model.pkl', 'rb'))
使用 Streamlit 的功能建立簡單的用戶介面。這裡我們將設計一個讓醫療人員可以輸入檢查結果的輸入框📝:
st.title("病患預測系統")
# 用戶輸入
input_data = {
'feature1': st.number_input('輸入特徵 1'),
'feature2': st.number_input('輸入特徵 2'),
# 添加其他特徵的輸入框
}
# 將輸入數據轉換為 DataFrame
input_df = pd.DataFrame([input_data])
以下也提供一些常用的輸入方式:
value = st.slider('病患年齡', min_value=0, max_value=100, value=50)
這段程式碼會生成一個範圍從 0 到 100 的滑桿,預設值為 50。你可以根據需要調整參數。
2) 建立下拉式選單:針對如 Admission Type 等有限選項的欄位(例如 Urgent、Emergency、Elective),可以設計成下拉式選單,以便使用者直接選擇適合的選項 ☑️。這樣可以避免使用者手動輸入,提升使用體驗及操作效率。
# 創建下拉式選單
options = ['Urgent', 'Emergency', 'Elective']
selected_option = st.selectbox('請選擇 Admission Type', options)
# 創建檔案上傳
uploaded_file = st.file_uploader("上傳檔案", type=['csv', 'txt', 'jpg', 'png'])
if uploaded_file is not None:
# 處理上傳的檔案
st.write('檔案名稱:', uploaded_file.name)
# 若需要,您可以讀取檔案內容
# data = pd.read_csv(uploaded_file)
以上這幾種都是最常見且常用到的功能,當然還有很多功能等著被探索🚀,很多時候都是需要用到的時候再去官方網站的 Streamlit Document 去查詢寫法📖。
在用戶輸入數據後,使用模型進行預測並顯示結果📈。
if st.button('預測'):
prediction = model.predict(input_df)
st.write('預測結果:', prediction[0])
在終端機 (terminal) 執行以下 Command 啟動 Streamlit 應用🖥️:
streamlit run your_script.py
請記得將 "your_script.py" 換成你自己的檔名喔~😄
使用 Streamlit 部署機器學習模型是一個簡單有效的方法,可以讓醫療人員方便地進行預測。這些範例及示意圖展現了如何快速建立一個應用程式,並為醫療人員提供直觀的數據輸入和結果顯示✨。部署過程涉及到許多細節,也建議大家可以自行深入了解 MLOps🌐。MLOps 是一個涵蓋模型管理、部署和監控的綜合性領域,能夠幫助您更有效地進行機器學習專案。
參考資料:
https://engnawal.github.io/Data-analysis-using-ml-streamlit/
https://www.askpython.com/python-modules/streamlit-theming
https://docs.streamlit.io/get-started/installation
https://with-kwang.tistory.com/57